The field of cryptography is generally dedicated to mathematical routines and processes for transforming unencrypted information referred to as “plain text” into encrypted information referred to as “cipher text.” Plain text information is generally in a form, such as plain text English, that is intelligible. Cipher text information, in contrast, is generally in a form that is not intelligible. For example, an encrypting algorithm might transform the plain text of “Clearwater, Fla.” into cipher text that reads “h4k0f2145n:0}1we9?b[6g.” A decrypting algorithm reverses the encryption operation by taking unintelligible data and making it intelligible again. Both encryption and decryption operations rely on the use of what is commonly referred to as a “cryptographic key.” The cryptographic key is a value that is unique to authorized users and is accepted as input to the cryptographic algorithm for the purpose of making the transformation unique. In general, the intent is that cipher text cannot be recovered without the appropriate cryptographic key. For example the cryptographic algorithm can transform the cipher text of “h4k0f2145n:0}1we9?b[6g” back into the plain text of “Clearwater, Fla.,” only if the cryptographic key used to encrypt the message is available to decrypt the message. As the cryptographic key grants access to the secured plain text when it is in encrypted form, the cryptographic key must itself be kept secret.
In a typical cryptographic system, a trusted user with an encrypting device and a key might encrypt confidential information and transmit the encrypted confidential information to another trusted user who possesses a device with a key. In many applications, an objective of cryptography is to make secret and/or confidential information unintelligible to unauthorized users. For example, even should an unauthorized user gain access to the cipher text of “h4k0f2145n:0}1we9?b[6g,” without the key, this encrypted information would be unintelligible and unusable to the unauthorized user.
Oftentimes unauthorized users will attempt to analyze cipher text in an attempt to extract the cryptographic key. Such unauthorized users are sometimes referred to as “attackers,” and such attempts to extract cryptographic keys are sometimes referred to as “attacks.” One technique for extracting the key is commonly referred to as the “brute force” technique, which involves an attempt to match every possible combination of plain text to the cipher text until a match is found. In modern 128-bit and 256-bit encryption, a pure brute force attack is highly impractical, even with the processing power of modern computers.
Differential power analysis (DPA) is a powerful cryptanalytic technique that can be used by attackers to extract cryptographic keys from cryptographic hardware by statistically correlating power consumption measurements recorded during processing of a cryptographic algorithm to specific operations of the cryptographic algorithm. By isolating the specific intermediate operations that comprise the cryptographic algorithm, attackers can gain an understanding of how a cryptographic algorithm is operating, and based on this understanding, the attackers can deconstruct the cryptographic algorithm incrementally until a key can be successfully extracted. In some instances, even 128-bit and 256-bit keys are vulnerable to deconstruction via DPA.